package com.br.folhapagamento.test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.util.Scanner;

import com.br.folhapagamento.folhainformatica.Analista;
import com.br.folhapagamento.folhainformatica.Diretor;
import com.br.folhapagamento.folhainformatica.EmpresaInformatica;
import com.br.folhapagamento.folhainformatica.Gerente;
import com.br.folhapagamento.folhainformatica.Programador;

public class Escrita {
	
	public static void main(String[] args) {
		try {
			Scanner scanner = new Scanner(new File("Empresa.txt"));
			
			EmpresaInformatica empresaInformatica = new EmpresaInformatica(scanner.nextLine());
		
			while (scanner.hasNextLine()) {
				String cargo = scanner.nextLine();
				if (cargo.equalsIgnoreCase("Diretor")) {
					empresaInformatica.inserirDiretor(new Diretor(scanner.nextLine(),
													  			  Integer.parseInt(scanner.nextLine()),
													  			  Double.parseDouble(scanner.nextLine()),
													  			  cargo));
				} else if (cargo.equalsIgnoreCase("Gerente")) {
					empresaInformatica.inserirGerente(new Gerente(scanner.nextLine(),
													  			  Integer.parseInt(scanner.nextLine()),
													  			  Double.parseDouble(scanner.nextLine()),
													  			  cargo));
				} else if (cargo.equalsIgnoreCase("Programador")) {
					empresaInformatica.inserirProgramador(new Programador(scanner.nextLine(),
														  				  Integer.parseInt(scanner.nextLine()),
														  				  Double.parseDouble(scanner.nextLine()),
														  				  Integer.parseInt(scanner.nextLine()),
														  				  cargo));
				} else if (cargo.equalsIgnoreCase("Analista")) {
					empresaInformatica.inserirAnalista(new Analista(scanner.nextLine(),
													   				Integer.parseInt(scanner.nextLine()),
											   						Double.parseDouble(scanner.nextLine()),
											   						Integer.parseInt(scanner.nextLine()),
											   						cargo));
				} else {
					System.out.println("Funcionário inválido!");
					return;
				}
			}
			
			scanner.close();
			
			ObjectOutputStream oos;
			
			oos = new ObjectOutputStream(new FileOutputStream("Empresa.obj"));
			oos.writeObject(empresaInformatica);
			oos.close();
			
			System.out.println("Arquivo gerado com sucesso.");
		} catch (Exception e) {
			System.out.println("Erro ao gerar arquivo.");
		}
	}

}